// npm install imagemin imagemin-jpegtran imagemin-pngquant imagemin-webp globby -g
// npm link imagemin imagemin-jpegtran imagemin-pngquant imagemin-webp globby
// const imagemin = require('imagemin');
// const imageminJpegtran = require('imagemin-jpegtran');
// const imageminPngquant = require('imagemin-pngquant');
// const imageminWebp = require('imagemin-webp');
// const globby = require('globby');
import imagemin from 'imagemin';
import imageminJpegtran from 'imagemin-jpegtran';
import imageminPngquant from 'imagemin-pngquant';
import imageminWebp from 'imagemin-webp';
// import globby from 'globby';

const JPEGPNGImages = 'src/images/test';
const output = 'src/images/test.min';

(async () => {
  console.log(JPEGPNGImages + '/*.{jpg,png,bmp}' + ' => ' + output);
  const files = await imagemin([JPEGPNGImages + '/*.{jpg,png,bmp}'], {
    destination: output,
    plugins: [
      imageminJpegtran(),
      imageminPngquant({
        quality: [0.6, 0.8]
      })
    ]
  });
  // console.log(files);
  //=> [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]
})();

(async () => {
  console.log(JPEGPNGImages + '/*.{jpg,png,bmp}' + ' => ' + output);
  const files = await imagemin([JPEGPNGImages + '.min/*.{jpg,png,bmp}'], {
    destination: output,
    plugins: [
      imageminWebp({
        quality: [85, 95],
      })
    ]
  });
  // console.log(files);
  //=> [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]
})();


// const get = name => {
//   const len = name.lastIndexOf('.');
//   const p = name.lastIndexOf('/');
//   return {name: name.substr(p + 1, len), ext: name.substr(len), path: name.substr(0, p)}
// };
//
// const unique = (arr) => {
//   return Array.from(new Set(arr))
// };
//
//
// (async () => {
//   const names = await globby(['./src/assets/images/**/*.png|*.jpg|*.jpeg|*.gif']);
//   // console.log(names)
//   let pathTree = [];
//   // 开始遍历改名
//   for (let [i, v] of names.entries()) {
//     const {name, ext, path} = get(v);
//     // console.log(i, v)
//     // console.log(name, ext, path)
//     pathTree.push(path);
//   }
//
//   pathTree = unique(pathTree);
//
//   console.log(pathTree);
//
//   pathTree.forEach(v => {
//     (async () => {
//       console.log(v + '/*.{jpg,png}');
//       const files = await imagemin([v + '/*.{jpg,png}'], {
//         destination: v,
//         plugins: [
//           // imageminJpegtran(),
//           // imageminPngquant({
//           //   quality: [0.6, 0.8]
//           // }),
//           imageminWebp({
//             quality: [85, 95],
//           })
//         ]
//       });
//       // console.log(files);
//       //=> [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]
//     })();
//   })
// })();

